type Position = {
    x: number,
    y: number
}

type List<T> = {
    first: T,
    rest: List<T>
}

type MoveFunc = (p: Position) => List<Position>

